Photogrammetric texture mapping using casual images

ABSTRACT

A method for photogrammetric texture mapping using casual images is provided. The method may include the following steps: estimating, for each vertex of at least a portion of a three dimensional (3D) mesh representing a model, projection parameters associated with a virtual camera that is unique for each vertex; mapping pixels from a two dimensional (2D) image to the vertices, such that each mapping of a pixel is based on the estimated respective virtual camera parameters; and texturing the portion of the mesh with corresponding mapped pixels wherein vertices on the textured portion are selected such that they are visible from a specified viewpoint associated with the 3D mesh.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to U.S. Provisional Patent ApplicationNo. 61/228,996, filed Jul. 28, 2009, which is incorporated by referencein its entirety, as if fully set forth herein.

BACKGROUND

1. Technical Field

The present invention relates to computer graphics and moreparticularly, to texturing three-dimensional (3D) models withtwo-dimensional (2D) images.

2. Discussion of the Related Art

Texture mapping has been a fundamental issue in computer graphics fromits early days. As online image databases have become increasinglyaccessible, the ability to texture 3D models using casual 2D images hasgained importance. This will facilitate, for example, the task oftexturing models of an animal using any of the hundreds of images ofthis animal found on the Internet, or enabling a naive user to createpersonal avatars using the user's own images. To texture a model usingan image, a mapping from the surface to the image should be calculated.Given user-defined constraints, a common approach to establish thismapping is employing constrained parameterization. This approachcomputes the mapping by embedding the mesh onto the image plane, whileattempting to satisfy the constraints and minimize a specific distortionmetric. This approach is suitable for casual images, since no priorassumptions regarding the source image and the camera are made. However,inherent distortions might be introduced due to photography effects thatresult from the viewpoint and the object's 3D geometry.

FIG. 1 illustrates the aforementioned aspect of the existing art. A 3Dmesh 11 representing a cylinder is provided together with a 2D image 12containing a textured cylinder. Specifically, in image 12, the textappears curved and the squares in the center seem wider than those nearthe silhouettes. These photography effects result from the viewpoint andthe object's 3D geometry. In mesh 11, a cylinder with differentproportions is being used. Several pairs of constraints 11A/12A-11F/12Fare specified thus geometrically associating mesh 11 with image 12. Bothmesh 11 and image 12 are then fed into constrained parameterizationtexturing system 10 which yield a textured mesh 13. It is clearly shownfrom textured mesh 13 that the texture is distorted due to thedissimilarity in the shape of the cylinder of mesh 11 and the cylinderof image 12, as well as the different orientation of the cameras. Evenwhen using a large number of constraints, constrained parameterizationcannot produce a satisfactory mapping, since its two goals—minimizingdistortions and satisfying constraints conflict.

If the cylinder of mesh 11 and the cylinder of image 12 were highlysimilar, a photogrammetric approach could solve the aforementioneddistortion, by recovering the camera's parameters. Using theseparameters to re-project the mesh 11 onto the image 12 would compensatefor the photography effects. However, since mesh 11 and image 12represent a-similar objects, the photogrammetric approach cannot beused.

BRIEF SUMMARY

Embodiments of the present invention overcome the drawbacks of both theconstrained parameterization approach, which does not account for thephotography effects, and the photogrammetric approach, which cannothandle arbitrary images. In order to achieve this, the mappingestimation is formulated as a problem for recovering local cameraparameters at each vertex.

One aspect of the invention provides a method for photogrammetrictexture mapping using casual images. The method may include thefollowing steps: estimating, for each vertex of at least a portion of a3D mesh representing a model, projection parameters associated with avirtual camera that is unique for each vertex; mapping pixels from a 2Dimage to the vertices, such that each mapping of a pixel is based on theestimated respective virtual camera parameters; and texturing theportion of the mesh with corresponding mapped pixels wherein vertices onthe textured portion are selected such that they are visible from aspecified viewpoint.

Other aspects of the invention may include a system arranged to executethe aforementioned method and a computer readable program configured toexecute the aforementioned method. These, additional, and/or otheraspects and/or advantages of the embodiments of the present inventionare set forth in the detailed description which follows; possiblyinferable from the detailed description; and/or learnable by practice ofthe embodiments of the present invention.

Advantageously, embodiments of the present invention do not performparameterization, but rather projection of the model according to theestimated local cameras. Therefore, issues such as fold-overs are not aconcern, since the visibility determination step will address these.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of embodiments of the invention and to showhow the same may be carried into effect, reference will now be made,purely by way of example, to the accompanying drawings in which likenumerals designate corresponding elements or sections throughout.

In the accompanying drawings:

FIG. 1 is a high level flowchart illustrating an aspect according of theexisting art;

FIG. 2 is a high level flowchart illustrating a method according to someembodiments of the invention;

FIG. 3 is a high level block diagram illustrating a system according tosome embodiments of the invention;

FIG. 4 is a high level flowchart illustrating an aspect according tosome embodiments of the invention; and

FIG. 5 illustrates an aspect according to some embodiments of theinvention.

The drawings together with the following detailed description makeapparent to those skilled in the art how the invention may be embodiedin practice.

DETAILED DESCRIPTION

Prior to setting forth the detailed description, it may be helpful toset forth definitions of certain terms that will be used hereinafter.

The term “polygon mesh” or simply, “mesh” as used herein in thisapplication refers to a collection of vertices, edges and surfaces thatdefines the shape of a polyhedral object in 3D computer graphics andsolid modeling. The surfaces usually consist of triangles,quadrilaterals or other simple convex polygons. A vertex is a positionalong with other information such as color, normal vector and texturecoordinates. An edge is a connection between two vertices. A surface isa closed set of edges, in which a triangle face has three edges, and aquad face has four edges.

With specific reference now to the drawings in detail, it is stressedthat the particulars shown are by way of example and for purposes ofillustrative discussion of the preferred embodiments of the presentinvention only, and are presented in the cause of providing what isbelieved to be the most useful and readily understood description of theprinciples and conceptual aspects of the invention. In this regard, noattempt is made to show structural details of the invention in moredetail than is necessary for a fundamental understanding of theinvention, the description taken with the drawings making apparent tothose skilled in the art how the several forms of the invention may beembodied in practice.

Before explaining at least one embodiment of the invention in detail, itis to be understood that the invention is not limited in its applicationto the details of construction and the arrangement of the components setforth in the following description or illustrated in the drawings. Theinvention is applicable to other embodiments or of being practiced orcarried out in various ways. Also, it is to be understood that thephraseology and terminology employed herein is for the purpose ofdescription and should not be regarded as limiting.

FIG. 2 is a high level flowchart illustrating a method 200 according tosome embodiments of the invention. Method 200 may include the followingsteps: estimating, for each vertex of at least a portion of a 3D meshrepresenting a model, projection parameters associated with a virtualcamera that is unique for each vertex 220. The method then goes on tomapping pixels from a 2D image to the vertices, such that each mappingof a pixel is based on the estimated respective virtual cameraparameters 230. Then finally, the method goes on to texturing theportion of the mesh with corresponding mapped pixels wherein vertices onthe textured portion are selected such that they are visible from aspecified viewpoint 240.

Consistent with one embodiment of the invention, estimating step 220 maybe preceded by the step of specifying a plurality of pairs, each paircontaining a mesh point of the 3D mesh and its geometricallycorresponding image pixel of the 2D image 210. Then, during estimatingstep 220, the projection parameters of any given vertex are calculatedat least partially based on distances between the given vertex and atleast some of the mesh points included in the specified pairs.

Consistent with one embodiment of the invention, the projectionparameters of any given vertex may be computed based on a respectiveweighted projection error of mesh points included in the specifiedpairs. Specifically, the weighting of the weighted projection may bebased at least partially on respective distances between the givenvertex and at least some of the mesh points included in the specifiedpairs. The estimation may be carried out by finding the projectionparameters that minimizes the weighted projection error function.

Consistent with one embodiment of the invention, the projectionparameters account for the photogrammetric effects which are basicallyeffects due to external and internal camera properties. To that extent,the external properties of the camera include its position and itsorientation, wherein the internal properties of the camera includecalibration parameters that are camera-unique. Both external andinternal camera properties are estimates in the estimating step.

Consistent with one embodiment of the invention, method 200 may furtherinclude the step of determining the visible vertices based on a sum ofdistances between the vertex and the mesh points included in thespecified pairs.

Consistent with one embodiment of the invention, determining the visiblevertices may be carried out by first rasterizing the 3D mesh onto the 2Dimage while calculating sums of distances between each vertex and atleast some of the mesh points included in the specified pairs, to yielda distance image aligned with the 2D image, such that each pixel of thedistance image represents a respective minimal calculated sum. Then, bycomparing, during the texturing, a depth associated with each mappedpixel with a respective pixel of the distance image, the visiblevertices being the vertices associated with the respective minimal sumsare determined.

Consistent with one embodiment of the invention, the model and aphysical object contained within the 2D image are geometricallyunrelated in terms of at least one of: pose, proportion, andarticulation.

FIG. 3 is a high level block diagram illustrating a system according tosome embodiments of the invention. System 300 may include an imagerepository 310 storing a plurality of arbitrary (casual) images, such as2D image 30 that serves as an input for system 300. Another input ofsystem 300 is a 3D mesh 40 representing a model 3D mesh 40 is defined byvertices which define surfaces containing mesh points. System 300 mayfurther include an estimating module 330, a mapping module 340, atexturing module 350, and a visibility module 360. System 300 outputs atextured mesh 50 having the 3D geometrical features of 3D mesh 40 andthe texture of 2D image 30.

In operation, estimating module 330 may be configured to estimate, foreach vertex of at least a portion of a 3D mesh 40, projection parametersassociated with a virtual camera that is unique for each vertex. Mappingmodule 340 may be configured to map pixels from a 2D image to thevertices, such that each mapping of a pixel is based on the estimatedrespective virtual camera parameters. Texturing module 350 may beconfigured to texture the portion of the mesh with corresponding mappedpixels. Visibility module 360 may be configured to determine whichvertices of 3D mesh 40 are visibly for the viewpoint associated with 2Dimage 30. Specifically, only the mesh portion that contains the verticesthat are visible from the viewpoint associated with 2D image 30 is beingtextured by texturing module 350.

Consistent with one embodiment of the invention, system 300 may furtherinclude a specifying module 320 configured to specify, possibly but notnecessarily, responsive of a user selection, a plurality of pairsrepresenting constraints associating 2D image 30 with 3D mesh 40.Specifically, each pair contains a mesh point of 3D mesh 40 and itsgeometrically corresponding image pixel of 2D image 30. Further,estimating module 330, may be configured to calculate the projectionparameters of any given vertex at least partially based on distancesbetween the given vertex and at least some of the mesh points includedin the specified pairs.

FIG. 4 is a flowchart illustrating an aspect according to someembodiments of the invention. A 3D mesh (model) 410 is shown togetherwith a 2D image 420. It is clearly seen that the mug of mesh 410 and themug of image 420 are not the same mug. Several constraints have beenspecified associating image 420 and mesh 410 in the form of pairs410A/420A-410F/420F. Both image 420 and mesh 410 are inputted into theaforementioned system 300. Possible output is textured mesh, viewed fromtwo different viewpoints 432 and 434. It is clearly seen on texturedmesh 432, that unlike textured mesh 13 of FIG. 1, the texture of image420 conforms with the geometry of mesh 410. In addition, the level andnature of the curved text in image 420 is maintained in textured mesh432. Textured mesh 434 is shown in orthographic projection, thus showingthat the mapping of the texture maintains the text on the mug inparallel to the mug's top and bottom thus compensating for thephotographic effects caused by the camera properties (e.g. orientationand position) in image 420.

Returning to FIG. 3, estimating module 330 may be further configured tocompute the projection parameters of any given vertex based on arespective weighted projection error of mesh points included in thespecified pairs. Specifically, the weighting of the weighted projectionmay be based at least partially on respective distances between thegiven vertex and at least some of the mesh points included in thespecified pairs.

An exemplary process by which the local camera parameters are beingcalculated for each vertex is by defining a mesh to image transformationfor each vertex. The mesh to image transformation maps a mesh point toan image pixel takes into account the external and the internalproperties of the local camera. Calculating the transformations isachieved by weighting the constraints pairs differently at each vertex,in contrast to the global case, according to their distance from thevertex.

Various weighting schemes are possible. In a non-limiting weightingscheme, the weights may be defined according to their proximity in termsof the geodesic distance points on the mesh surface (a constraint and avertex).

Under the assumption of a simple camera, and assuming also that thecamera has a uniform scaling in both axes, a specified error functionunique for each vertex may be defined and computed. Then, the virtualcamera parameters are those that minimize the specified error function.The aforementioned assumption comply with available casual images (e.g.,from the internet) but it is further understood that other errorfunction may be defined and calculated on an ad hoc basis in order toextract other local cameras projection parameters.

Consistent with one embodiment of the invention visibility module 360may be configured to determine the visible vertices based on arespective sum of distances between the vertex and the mesh pointsincluded in the specified pairs. Visibility module 360 may include arasterizing module 370 configured to rasterize 3D mesh 40 onto 2D image30 while calculating sums of distances between each vertex and at leastsome of the mesh points included in the specified pairs, to yield adistance buffer 380 aligned with the 2D image, such that each pixel ofthe distance image represents a respective minimal calculated sum.Visibility module 360 may further include a comparison module 390configured to compare, a sum of distances associated with each mappedpixel with a respective pixel of the distance buffer, to determine thevisible vertices being the vertices associated with the respectiveminimal sums.

It should be noted that the use of visibility module 360 is required dueto the use of camera projection. Camera projection usually maps at leasttwo mesh points to each image pixel (the model's front and back), fromwhich only one should be textured, while the others should be consideredinvisible. An inherent property of the constrained parameterizationapproach is that at most one mesh point is mapped to each image point.In the global photogrammetric approach, the visibility issue isaddressed using visible surface detection, (for example, by a Z-Bufferstoring the depth of the depth atlas of the model). Although a Z-Buffercannot be used in order to detect visibility with local cameras (as theglobal depth of the model is unknown), it would be possible to modifyexisting hardware supporting Z-Buffer, to implement the aforementioneddistance buffer 380.

FIG. 5 illustrates the visibility aspect according to some embodimentsof the invention. There is provided a 3D mesh 510 and a 2D image 520. Itshould be noted that not only the dog in mesh 510 differs in proportionand pose from the dog in image 520; they also differ in articulation, asthe dog in 510 looks forward whereas the dog in image 520 looks at theviewer (camera).

Using the constraints (pairs) associating mesh 510 and image 520, adistance buffer 540 is computed. Distance buffer 540 stores the minimalsum of distances for each vertex on the mesh, from the constraintspoints of the mesh. This is useful when there are more than one meshpoint that may be mapped onto a single image pixel. This could happen,for example, on the dogs legs, where each leg has a front side and backside (from viewer perspective)—a total of four points of mesh 510 thatneed to be mapped into a single pixel from image 520.

Model 530 shows the distance buffer 540 embedded thereon showing on theleft—the front side of the dog (with the minimal sums of distances) andthe back side of the dog with no minimal sums. This conforms to realityas the textured side is the front side. Textured models 550 and 552 showhow the texture of image 520 is mapped onto mesh 510 wherein in 552 nodistance buffer is used so that the back of the dog is also texturedmistakenly. In 550 the distance buffer is used to determine the visiblevertices so that only the visible front side of the dog has beentextured.

Consistent with embodiments of the invention, a software toolimplementing method 200 or system 300 may further be provided. Thesoftware tool may provide iterative process supported by an appropriateGraphical User Interface (GUI) that may improve the texturing process inresponse to user selection. For example, the user may start withspecifying a small number of feature points (at least five) both on themodel and on the source image. Given these constraints, embodiments ofmethod 200 calculate the mapping and texture the model in an interactivemanner. The user can then improve the result, by either adding moreconstrains (pairs) or adjusting the positions of the existingconstraints. Each modification to the constraints initiates therecalculation of the mapping and the texturing.

Advantageously, embodiments of the present invention provide texturing3D models from casual images that need not conform to the geometry(proportion, pose, and articulation) of the model. Moreover, as seenabove, embodiments of the present invention provide the advantages ofthe photogrammetric approach and the flexibility of theconstrained-parameterization approach.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbase band or as part of a carrier wave. Such a propagated signal maytake any of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wire-line, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described above with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The aforementioned flowchart and diagrams illustrate the architecture,functionality, and operation of possible implementations of systems,methods and computer program products according to various embodimentsof the present invention. In this regard, each block in the flowchart orblock diagrams may represent a module, segment, or portion of code,which comprises one or more executable instructions for implementing thespecified logical function(s). It should also be noted that, in somealternative implementations, the functions noted in the block may occurout of the order noted in the figures. For example, two blocks shown insuccession may, in fact, be executed substantially concurrently, or theblocks may sometimes be executed in the reverse order, depending uponthe functionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts, or combinations of special purpose hardware andcomputer instructions.

In the above description, an embodiment is an example or implementationof the inventions. The various appearances of “one embodiment,” “anembodiment” or “some embodiments” do not necessarily all refer to thesame embodiments.

Although various features of the invention may be described in thecontext of a single embodiment, the features may also be providedseparately or in any suitable combination. Conversely, although theinvention may be described herein in the context of separate embodimentsfor clarity, the invention may also be implemented in a singleembodiment.

Reference in the specification to “some embodiments”, “an embodiment”,“one embodiment” or “other embodiments” means that a particular feature,structure, or characteristic described in connection with theembodiments is included in at least some embodiments, but notnecessarily all embodiments, of the inventions.

It is to be understood that the phraseology and terminology employedherein is not to be construed as limiting and are for descriptivepurpose only.

The principles and uses of the teachings of the present invention may bebetter understood with reference to the accompanying description,figures and examples.

It is to be understood that the details set forth herein do not construea limitation to an application of the invention.

Furthermore, it is to be understood that the invention can be carriedout or practiced in various ways and that the invention can beimplemented in embodiments other than the ones outlined in thedescription above.

It is to be understood that the terms “including”, “comprising”,“consisting” and grammatical variants thereof do not preclude theaddition of one or more components, features, steps, or integers orgroups thereof and that the terms are to be construed as specifyingcomponents, features, steps or integers.

If the specification or claims refer to “an additional” element, thatdoes not preclude there being more than one of the additional element.

It is to be understood that where the claims or specification refer to“a” or “an” element, such reference is not be construed that there isonly one of that element.

It is to be understood that where the specification states that acomponent, feature, structure, or characteristic “may”, “might”, “can”or “could” be included, that particular component, feature, structure,or characteristic is not required to be included.

Where applicable, although state diagrams, flow diagrams or both may beused to describe embodiments, the invention is not limited to thosediagrams or to the corresponding descriptions. For example, flow neednot move through each illustrated box or state, or in exactly the sameorder as illustrated and described.

Methods of the present invention may be implemented by performing orcompleting manually, automatically, or a combination thereof, selectedsteps or tasks.

The term “method” may refer to manners, means, techniques and proceduresfor accomplishing a given task including, but not limited to, thosemanners, means, techniques and procedures either known to, or readilydeveloped from known manners, means, techniques and procedures bypractitioners of the art to which the invention belongs.

The descriptions, examples, methods and materials presented in theclaims and the specification are not to be construed as limiting butrather as illustrative only.

Meanings of technical and scientific terms used herein are to becommonly understood as by one of ordinary skill in the art to which theinvention belongs, unless otherwise defined.

The present invention may be implemented in the testing or practice withmethods and materials equivalent or similar to those described herein.

Any publications, including patents, patent applications and articles,referenced or mentioned in this specification are herein incorporated intheir entirety into the specification, to the same extent as if eachindividual publication was specifically and individually indicated to beincorporated herein. In addition, citation or identification of anyreference in the description of some embodiments of the invention shallnot be construed as an admission that such reference is available asprior art to the present invention.

While the invention has been described with respect to a limited numberof embodiments, these should not be construed as limitations on thescope of the invention, but rather as exemplifications of some of thepreferred embodiments. Other possible variations, modifications, andapplications are also within the scope of the invention. Accordingly,the scope of the invention should not be limited by what has thus farbeen described, but by the appended claims and their legal equivalents.

What is claimed is:
 1. A method comprising: estimating, for each vertexof at least a portion of a 3D mesh containing mesh points representing amodel, projection parameters associated with a virtual camera that isunique for each vertex; mapping pixels from a 2D image to the vertices,such that each mapping of a pixel is based on the estimated respectivevirtual camera parameters; texturing the portion of the mesh withcorresponding mapped pixels, wherein vertices on the textured portionare selected such that they are visible from a specified viewpointassociated with the 3D mesh; specifying a plurality of pairs, each paircontaining a mesh point of the 3D mesh and its geometricallycorresponding image pixel of the 2D image, wherein during theestimating, the projection parameters of any given vertex are calculatedat least partially based on distances between the given vertex and atleast some of the mesh points included in the specified pairs;rasterizing the 3D mesh onto the 2D image while calculating sums ofdistances between each vertex and at least some of the mesh pointsincluded in the specified pairs, to yield a distance image aligned withthe 2D image, such that each pixel of the distance image represents arespective minimal calculated sum; and comparing, during the texturing,a depth associated with each mapped mesh points with a respective pixelof the distance image, to determine the visible vertices being thevertices associated with the respective minimal sums.
 2. The methodaccording to claim 1, wherein the projection parameters of any givenvertex are further computed based on a respective weighted projectionerror of mesh points included in the specified pairs, wherein weightingof the weighted projection is based at least partially on respectivedistances between the given vertex and at least some of the mesh pointsincluded in the specified pairs.
 3. The method according to claim 2,wherein the projection parameters of any given vertex are furthercomputed based on a minimizing of the respective weighted projectionerror.
 4. The method according to claim 1, wherein the projectionparameters comprise at least one of: a position, an orientation, and acalibration associated with the virtual camera located within aspecified distance from each one of the vertices.
 5. The methodaccording to claim 1, further comprising determining the visiblevertices based on a sum of distances between the vertex and the meshpoints included in the specified pairs.
 6. The method according to claim1, wherein the model and a physical object contained within the 2D imageare geometrically unrelated in terms of at least one of: a pose, aproportion, and an articulation.
 7. A system comprising: at least onecomputer processor; an estimating module configured to estimate, foreach vertex of at least a portion of a 3D mesh containing mesh pointsand representing a model, projection parameters associated with avirtual camera that is unique for each vertex; a mapping moduleconfigured to map pixels from a 2D image to the vertices, such that eachmapping of a pixel is based on the estimated respective virtual cameraparameters; a texturing module configured to texture the portion of themesh with corresponding mapped pixels wherein vertices on the texturedportion are selected such that they are visible from a specifiedviewpoint, a specifying module configured to specify, responsive of auser selection, a plurality of pairs, each pair containing a mesh pointof the 3D mesh and its geometrically corresponding image pixel of the 2Dimage and wherein the estimating module is further configured tocalculate the projection parameters of any given vertex at leastpartially based on distances between the given vertex and at least someof the mesh points included in the specified pairs; a rasterizing moduleconfigured to rasterize the 3D mesh onto the 2D image while calculatingsums of distances between each vertex and at least some of the meshpoints included in the specified pairs, to yield a distance bufferaligned with the 2D image, such that each pixel of the distance imagerepresents a respective minimal calculated sum; and a comparison moduleconfigured to compare, a sum of distances associated with each mappedmesh point with a respective pixel of the distance buffer, to determinethe visible vertices being the vertices associated with the respectiveminimal sums, wherein the modules are executed by said at least onecomputer processor.
 8. The system according to claim 7, wherein theestimating module is further configured to compute the projectionparameters of any given vertex based on a respective weighted projectionerror of mesh points included in the specified pairs, wherein aweighting of the weighted projection is based at least partially onrespective distances between the given vertex and at least some of themesh points included in the specified pairs.
 9. The system according toclaim 8, wherein the estimating module is further configured tocalculate the projection parameters of any given vertex are furthercomputed based on a minimizing of the respective weighted projectionerror.
 10. The system according to claim 7, wherein the projectionparameters comprise at least one of a position, an orientation, and acalibration associated with the virtual camera located within aspecified distance from each one of the vertices.
 11. The systemaccording to claim 7, further comprising a visibility module configuredto determine the visible vertices based on a respective sum of distancesbetween the vertex and the mesh points included in the specified pairs.12. The system according to claim 7, wherein a physical objectrepresented by the 3D mesh and a physical object contained within the 2Dimage are geometrically unrelated in terms of at least one: a pose, aproportion, and an articulation.
 13. A computer program product, thecomputer program product comprising a computer readable storagenon-transitory medium having computer readable program embodiedtherewith, the computer readable program comprising: computer readableprogram configured to estimate, for each vertex of at least a portion ofa 3D mesh containing mesh points and representing a model, projectionparameters associated with a virtual camera that is unique for eachvertex; computer readable program configured to map pixels from a 2Dimage to the vertices, such that each mapping of a pixel is based on theestimated respective virtual camera parameters; computer readableprogram configured to texture the portion of the mesh with correspondingmapped pixels wherein vertices on the textured portion are selected suchthat they are visible from a specified viewpoint associate with the 3Dmesh; computer readable program configured to specify, responsive of auser selection, a plurality of pairs, each pair containing a mesh pointof the 3D mesh and its geometrically corresponding image pixel of the 2Dimage; computer readable program configured to calculate the projectionparameters of any given vertex at least partially based on distancesbetween the given vertex and at least some of the mesh points includedin the specified pairs; computer readable program configured torasterize the 3D mesh onto the 2D image while calculating sums ofdistances between each vertex and at least some of the mesh pointsincluded in the specified pairs, to yield a distance buffer aligned withthe 2D image, such that each pixel of the depth image represents arespective minimal calculated sum; and computer readable programconfigured to compare, a sum of distances associated with each mappedmesh point with a respective pixel of the distance buffer, to determinethe visible vertices being the vertices associated with the respectiveminimal sums.
 14. The computer program product according to claim 13,further comprising computer readable program configured to compute theprojection parameters of any given vertex based on a respective weightedprojection error of mesh points included in the specified pairs, whereina weighting of the weighted projection is based at least partially onrespective distances between the given vertex and at least some of themesh points included in the specified pairs.
 15. The computer programproduct according to claim 14, further comprising computer readableprogram configured to calculate the projection parameters of any givenvertex are further computed based on a minimizing of the respectiveweighted projection error of the specified pairs.
 16. The computerprogram product according to claim 13, wherein the projection parameterscomprise at least one of: a position, an orientation, and a calibrationassociated with the virtual camera located within a specified distancefrom each one of the vertices.
 17. The computer program productaccording to claim 13, further comprising computer readable programconfigured to determine the visible vertices based on a sum of distancesbetween the vertex and the mesh points included in the specified pairs.18. The computer program product according to claim 13, wherein aphysical object represented by the 3D mesh and a physical objectcontained within the 2D image are geometrically unrelated in terms of atleast one: a pose, a proportion, and an articulation.